<template>
  <div class="app-container">
    <el-card shadow="never">
      <!-- 条件查询 -->
      <el-form v-show="showSearch" ref="queryForm" :model="queryParams" label-width="90px"
               @keyup.enter.native="submitSearch" @submit.native.prevent>
        <el-row>
          <el-col :md="6" :sm="12">
            <el-form-item label="消息内容:" prop="content.value">
              <el-input v-model="queryParams.content.value" placeholder="请输入消息内容" clearable/>
            </el-form-item>
          </el-col>
          <el-col :md="6" :sm="12">
            <el-form-item label="用户昵称:" prop="nickname.value">
              <el-input v-model="queryParams.nickname.value" placeholder="请输入用户昵称" clearable/>
            </el-form-item>
          </el-col>
          <el-col :md="6" :sm="12">
            <el-form-item class="ele-text-right" label-width="50px">
              <el-button type="primary" size="mini" @click="submitSearch" icon="el-icon-search" class="ele-btn-icon">
                搜索
              </el-button>
              <el-button @click="resetQuery" size="mini" icon="el-icon-refresh">重置</el-button>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <el-row :gutter="10" class="mb8">
        <el-col :span="1.5">
          <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="open" v-hasPermi="api.add">添加
          </el-button>
        </el-col>
        <el-col :span="1.5">
          <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
                     v-hasPermi="api.delete">删除
          </el-button>
        </el-col>
        <el-col :span="1.5">
          <el-button type="warning" plain icon="el-icon-download" size="mini" v-loading="exportLoading"
                     @click="handleExport" v-hasPermi="api.export">导出
          </el-button>
        </el-col>
        <right-toolbar :showSearch.sync="showSearch" @queryTable="initIndex" :columns="columns"
                       printId="#quickadmin"></right-toolbar>
      </el-row>
      <!-- 列表 -->
      <qa-table
          :source="tableData"
          :columns="columns"
          :selection="true"
          :loading="loading"
          @sortChange="sortChange"
          @statusChange="statusChange"
          @selectionChange="selectionChange"
          id="quickadmin"
      >
        <template v-slot:action>
          <el-table-column label="操作" width="180" v-if="false">
            <template slot-scope="scope">
              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleEdit(scope.row)"
                         v-hasPermi="api.edit">编辑
              </el-button>
              <el-button size="mini" type="text" icon="el-icon-tickets" @click="handleDetail(scope.row)"
                         v-hasPermi="api.find">详情
              </el-button>
              <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
                         v-hasPermi="api.delete">删除
              </el-button>
            </template>
          </el-table-column>
        </template>
      </qa-table>

      <!-- 分页 -->
      <pagination :total="total" :page.sync="pageInfo.page" :limit.sync="pageInfo.limit" @pagination="initIndex"/>
    </el-card>

    <!-- 编辑弹窗 -->
    <el-dialog :title="!disabled ? ( findFormData[pk] ? '编辑' : '添加' ) : '详情'" :visible="editOpen" :before-close="beforeClose" destroy-on-close>
      <EditForm ref="editForm" :findFormData="findFormData" :disabled="disabled" @submitForm="submitForm"
                :editFormParams="editFormParams" @editFormCancel="beforeClose"/>
    </el-dialog>
  </div>
</template>

<script>
import {curdMixin} from '@/mixins/curdMixin'
import EditForm from './EditFormCom'

export default {
  name: 'Curd',
  mixins: [curdMixin],
  components: {EditForm},
  props: {
    queryObj: {
      type: Object,
      default: ()=> {
        return {
          roomId: ''
        }
      }
    }
  },
  data() {
    return {
      // table结构
      columns: [
        {
          visible: true,
          label: '编号',
          prop: 'id',
          width: 55
        },
        {
          visible: true,
          label: '用户昵称',
          prop: 'nickname',
        },
        {
          visible: true,
          label: '用户头像',
          prop: 'avatar',
          component: 'QuickAdminImage'
        },
        {
          visible: true,
          label: '用户类型',
          prop: 'user_type',
          component: 'QuickAdminTextColor',
          formatter: (prop, row) => {
            let type = ''
            switch (prop) {
              case 1:
                type = 'primary'
                break
            }
            return {
              value: prop,
              type: type,
              text: row.user_type_text,
            }
          },
        },
        {
          visible: true,
          label: '消息类型',
          prop: 'msg_type',
          component: 'QuickAdminTextColor',
          formatter: (prop, row) => {
            let type = ''
            switch (prop) {
              case 1:
                type = 'success'
                break
            case 2:
                type = 'primary'
                break
            }
            return {
              value: prop,
              type: type,
              text: row.msg_type_text,
            }
          },
        },
        {
          visible: true,
          label: '消息内容',
          prop: 'content',
          overflow: true
        },
        {
          visible: true,
          label: '创建时间',
          prop: 'create_time',
          overflow: true
        },
        {
          visible: true,
          label: '更新时间',
          prop: 'update_time',
          overflow: true
        },
      ],
      // 接口地址
      api: {
        index: `/admin/live.room_message/index`,
        find: `/admin/live.room_message/find`,
        add: `/admin/live.room_message/add`,
        edit: `/admin/live.room_message/edit`,
        delete: `/admin/live.room_message/delete`,
        export: `/admin/live.room_message/export`,
        status: `/admin/live.room_message/status`
      },
      editFormParams: {},
      // 搜索表单是否展开
      searchExpand: false,
      // 查询参数
      queryParams: {
        content: {value: undefined, op: '%like%'},
        nickname: {value: undefined, op: '%like%'},
        room_id: {value: undefined, op: '='},
      },
      user_type: [
        {label: "用户", value: 1 },
      ],
      msg_type: [
        {label: "文本", value: 1},
        {label: "表情", value: 2},
      ],
      tableIsJoinLoad: false
    }
  },
  created() {
    if (this.queryObj.roomId) {
      this.queryParams.room_id.value = this.queryObj.roomId
    }
    this.initIndex()
  }
}
</script>
